// js/constants.js

// 游戏区域尺寸 (单位：块)
const COLS = 10;
const ROWS = 20;

// 每个块的大小 (单位：像素)
const BLOCK_SIZE = 30;

// 下一块预览区域尺寸 (单位：块) - 假设最大方块是 4x4
const NEXT_COLS = 4;
const NEXT_ROWS = 4;

// 颜色定义
const COLORS = [
    null,        // 0: 空白格
    '#FF0D72',   // 1: I (青色) - 换个亮色
    '#0DC2FF',   // 2: L (蓝色) - 换个亮色
    '#0DFF72',   // 3: J (橙色) - 换个亮色
    '#F538FF',   // 4: O (黄色) - 换个亮色
    '#FF8E0D',   // 5: T (绿色) - 换个亮色
    '#FFE138',   // 6: S (紫色) - 换个亮色
    '#3877FF',   // 7: Z (红色) - 换个亮色
];

// 方块形状定义 (用数字代表颜色索引)
const SHAPES = [
    [], // 空形状，占位符
    [[0,0,0,0], [1,1,1,1], [0,0,0,0], [0,0,0,0]], // I
    [[2,0,0], [2,2,2], [0,0,0]],                  // L
    [[0,0,3], [3,3,3], [0,0,0]],                  // J
    [[4,4], [4,4]],                               // O
    [[0,5,0], [5,5,5], [0,0,0]],                  // T
    [[0,6,6], [6,6,0], [0,0,0]],                  // S
    [[7,7,0], [0,7,7], [0,0,0]]                   // Z
];

// 键盘控制键码 (推荐使用 event.key)
const KEY = {
    LEFT: 'ArrowLeft',
    RIGHT: 'ArrowRight',
    UP: 'ArrowUp',      // 用于旋转
    DOWN: 'ArrowDown',    // 用于加速下落
    SPACE: 'Space',     // 用于瞬间下落 (可选)
    P: 'KeyP'           // 用于暂停 (可选)
};

// 计分规则
const POINTS = {
    SINGLE: 100,
    DOUBLE: 300,
    TRIPLE: 500,
    TETRIS: 800, // 一次消4行
    SOFT_DROP: 1, // 每格软下落得分 (可选)
    HARD_DROP: 2  // 每格硬下落得分 (可选)
};

// 升级阈值 (每达到多少分升一级)
const LEVEL_THRESHOLD = 1000;

// 初始下落速度 (毫秒)
const INITIAL_SPEED = 800;
// 每升一级减少的速度 (毫秒)，但要设置一个最小值
const SPEED_INCREMENT = 50;
const MIN_SPEED = 100; // 最快速度

// API 地址
const API_BASE_URL = 'http://localhost:5000/api'; // 从设计文档获取